<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>xilpuf: XilPuf Client API</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">xilpuf
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;"
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__xpuf__client__api.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">XilPuf Client API</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gab83919b4e338ae14a1ea949eefc6d87f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xpuf__client__api.html#gab83919b4e338ae14a1ea949eefc6d87f">XPUF_SLR_INDEX_SHIFT</a>&#160;&#160;&#160;(6U)</td></tr>
<tr class="memdesc:gab83919b4e338ae14a1ea949eefc6d87f"><td class="mdescLeft">&#160;</td><td class="mdescRight">To shift puf SLR index.  <a href="#gab83919b4e338ae14a1ea949eefc6d87f">More...</a><br/></td></tr>
<tr class="separator:gab83919b4e338ae14a1ea949eefc6d87f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5881ac64a7ea71e067471c3012aa2e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xpuf__client__api.html#gaf5881ac64a7ea71e067471c3012aa2e1">XPUF_ADDR_HIGH_SHIFT</a>&#160;&#160;&#160;(32U)</td></tr>
<tr class="memdesc:gaf5881ac64a7ea71e067471c3012aa2e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift value to get higher 32 bit address.  <a href="#gaf5881ac64a7ea71e067471c3012aa2e1">More...</a><br/></td></tr>
<tr class="separator:gaf5881ac64a7ea71e067471c3012aa2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga49d1e926b95c73c927b8b3f078899f98"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xpuf__client__api.html#ga49d1e926b95c73c927b8b3f078899f98">XPuf_ClientInit</a> (XPuf_ClientInstance *const InstancePtr, XMailbox *const MailboxPtr)</td></tr>
<tr class="memdesc:ga49d1e926b95c73c927b8b3f078899f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the instance of mailbox.  <a href="#ga49d1e926b95c73c927b8b3f078899f98">More...</a><br/></td></tr>
<tr class="separator:ga49d1e926b95c73c927b8b3f078899f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga773b36e5066bc5cea6d6d400327c1ba1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xpuf__client__api.html#ga773b36e5066bc5cea6d6d400327c1ba1">XPuf_Registration</a> (const XPuf_ClientInstance *InstancePtr, const u64 DataAddr)</td></tr>
<tr class="memdesc:ga773b36e5066bc5cea6d6d400327c1ba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request for PUF registration.  <a href="#ga773b36e5066bc5cea6d6d400327c1ba1">More...</a><br/></td></tr>
<tr class="separator:ga773b36e5066bc5cea6d6d400327c1ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b42ac41fa42710bb134fd1f1325c397"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xpuf__client__api.html#ga1b42ac41fa42710bb134fd1f1325c397">XPuf_Regeneration</a> (const XPuf_ClientInstance *InstancePtr, const u64 DataAddr)</td></tr>
<tr class="memdesc:ga1b42ac41fa42710bb134fd1f1325c397"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request for PUF regeneration.  <a href="#ga1b42ac41fa42710bb134fd1f1325c397">More...</a><br/></td></tr>
<tr class="separator:ga1b42ac41fa42710bb134fd1f1325c397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8d5cc63e59e2c814c2181043759fb9d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xpuf__client__api.html#gae8d5cc63e59e2c814c2181043759fb9d">XPuf_ClearPufID</a> (const XPuf_ClientInstance *InstancePtr)</td></tr>
<tr class="memdesc:gae8d5cc63e59e2c814c2181043759fb9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request for PUF clear ID.  <a href="#gae8d5cc63e59e2c814c2181043759fb9d">More...</a><br/></td></tr>
<tr class="separator:gae8d5cc63e59e2c814c2181043759fb9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaf5881ac64a7ea71e067471c3012aa2e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XPUF_ADDR_HIGH_SHIFT&#160;&#160;&#160;(32U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shift value to get higher 32 bit address. </p>

<p>Referenced by <a class="el" href="group__xpuf__client__api.html#ga1b42ac41fa42710bb134fd1f1325c397">XPuf_Regeneration()</a>, and <a class="el" href="group__xpuf__client__api.html#ga773b36e5066bc5cea6d6d400327c1ba1">XPuf_Registration()</a>.</p>

</div>
</div>
<a class="anchor" id="gab83919b4e338ae14a1ea949eefc6d87f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XPUF_SLR_INDEX_SHIFT&#160;&#160;&#160;(6U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>To shift puf SLR index. </p>

<p>Referenced by <a class="el" href="group__xpuf__client__api.html#gae8d5cc63e59e2c814c2181043759fb9d">XPuf_ClearPufID()</a>, <a class="el" href="group__xpuf__client__api.html#ga1b42ac41fa42710bb134fd1f1325c397">XPuf_Regeneration()</a>, and <a class="el" href="group__xpuf__client__api.html#ga773b36e5066bc5cea6d6d400327c1ba1">XPuf_Registration()</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gae8d5cc63e59e2c814c2181043759fb9d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XPuf_ClearPufID </td>
          <td>(</td>
          <td class="paramtype">const XPuf_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request for PUF clear ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the PUF clear ID is successful</li>
<li>XST_FAILURE if there is a failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid.</p>
<p>Send an IPI request to the PLM by using the XPuf_ClearPufID CDO command and return the status of the IPI response.</p>

<p>References <a class="el" href="group__xpuf__mailbox__apis.html#ga2052fd116d6e086ca703c3518eafd887">XPuf_ProcessMailbox()</a>, <a class="el" href="xpuf__defs_8h.html#a2e19f3b163a88acd0d435dbb8f3e6980a64590602f5af8086c2a85ec6f4812c83">XPUF_PUF_CLEAR_PUF_ID</a>, and <a class="el" href="group__xpuf__client__api.html#gab83919b4e338ae14a1ea949eefc6d87f">XPUF_SLR_INDEX_SHIFT</a>.</p>

</div>
</div>
<a class="anchor" id="ga49d1e926b95c73c927b8b3f078899f98"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XPuf_ClientInit </td>
          <td>(</td>
          <td class="paramtype">XPuf_ClientInstance *const&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XMailbox *const&#160;</td>
          <td class="paramname"><em>MailboxPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the instance of mailbox. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">MailboxPtr</td><td>Pointer to the mailbox instance</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful initialization</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Set XMailbox instance provided by the user to client library instance by validating whether provided instance is not NULL and initialized. Use XMailbox instance to initiate the communication between client and server.</p>

</div>
</div>
<a class="anchor" id="ga1b42ac41fa42710bb134fd1f1325c397"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XPuf_Regeneration </td>
          <td>(</td>
          <td class="paramtype">const XPuf_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u64&#160;</td>
          <td class="paramname"><em>DataAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request for PUF regeneration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">DataAddr</td><td>Address of the data structure which includes options to configure PUF</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the PUF regeneration is successful</li>
<li>XST_FAILURE if there is a failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid.</p>
<p>Send an IPI request to the PLM by using the XPuf_Regeneration CDO command and return the status of the IPI response.</p>

<p>References <a class="el" href="group__xpuf__client__api.html#gaf5881ac64a7ea71e067471c3012aa2e1">XPUF_ADDR_HIGH_SHIFT</a>, <a class="el" href="group__xpuf__mailbox__apis.html#ga2052fd116d6e086ca703c3518eafd887">XPuf_ProcessMailbox()</a>, <a class="el" href="xpuf__defs_8h.html#a2e19f3b163a88acd0d435dbb8f3e6980ae0d7de4596d15f543923f5ed09565e84">XPUF_PUF_REGENERATION</a>, and <a class="el" href="group__xpuf__client__api.html#gab83919b4e338ae14a1ea949eefc6d87f">XPUF_SLR_INDEX_SHIFT</a>.</p>

</div>
</div>
<a class="anchor" id="ga773b36e5066bc5cea6d6d400327c1ba1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XPuf_Registration </td>
          <td>(</td>
          <td class="paramtype">const XPuf_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u64&#160;</td>
          <td class="paramname"><em>DataAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request for PUF registration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">DataAddr</td><td>Address of the data structure which includes options to configure PUF</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the PUF registration is successful</li>
<li>XST_FAILURE if there is a failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid.</p>
<p>Send an IPI request to the PLM by using the XPuf_Registration CDO command and return the status of the IPI response.</p>

<p>References <a class="el" href="group__xpuf__client__api.html#gaf5881ac64a7ea71e067471c3012aa2e1">XPUF_ADDR_HIGH_SHIFT</a>, <a class="el" href="group__xpuf__mailbox__apis.html#ga2052fd116d6e086ca703c3518eafd887">XPuf_ProcessMailbox()</a>, <a class="el" href="xpuf__defs_8h.html#a2e19f3b163a88acd0d435dbb8f3e6980a811924cbfc83968c698b096d31214a80">XPUF_PUF_REGISTRATION</a>, and <a class="el" href="group__xpuf__client__api.html#gab83919b4e338ae14a1ea949eefc6d87f">XPUF_SLR_INDEX_SHIFT</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
